package com.xianggu.reflect.demo;

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;

public class MathUtils {
    public static int add(int a, int b) {
        return a + b;
    }

    //调用静态方法
    public static void main(String[] args) throws Throwable {
        MethodHandles.Lookup lookup = MethodHandles.lookup();
        MethodType mt = MethodType.methodType(int.class, int.class, int.class);
        
        // 获取静态方法句柄
        MethodHandle mh = lookup.findStatic(MathUtils.class, "add", mt);
        
        // 直接调用（无需实例）
        int result = (int) mh.invokeExact(3, 5); // 返回 8 
    }
}